package com.zhuoan.im.webapp.dao.mapper;

import com.github.miemiedev.mybatis.paginator.domain.PageBounds;
import com.github.miemiedev.mybatis.paginator.domain.PageList;
import com.zhuoan.im.webapp.dao.model.User;
import com.zhuoan.im.webapp.dao.model.condition.UserCondition;
import com.zhuoan.im.webapp.dao.model.form.UserForm;
import com.zhuoan.im.webapp.dao.model.vo.UserVO;

import java.util.List;

public interface UserMapper {
    int deleteByPrimaryKey(Long id);

    int insert(User record);

    int insertSelective(User record);

    User selectByPrimaryKey(Long id);

    int updateByPrimaryKeySelective(User record);

    int updateByPrimaryKey(User record);

    PageList<UserVO> queryAllUsersByCondition(UserCondition userCondition, PageBounds pageBounds);

    UserVO queryUserVOByCondition(UserCondition userCondition, PageBounds pageBounds);

    List<UserVO> queryUserVOByIds(List<Long> inCurrentGroupUserIds);

    void insertSelectiveByUserForm(UserForm userForm);

    void updateByBlockAddrSelective(UserForm userForm);
}